Go 語言中的有關檔案操作的工具,不可不提到標準函式庫裡邊的io/ioutil 和 os package,我們將講解此套件的一些函式,他們的用法及功能。
io/ioutil
這個函式很顯然,是讀取該檔案夾裡頭的檔案:
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
datas, err := ioutil.ReadDir(".")
if err != nil {
fmt.Println(err)
}
for _, file := range datas {
fmt.Println(datas.Name())
}
}
可以執行看看,會印出該檔案夾,所有檔案及資料夾。
ReadFile這個函式非常容易使用,我們直接看以下範例:
package main
import (
"fmt"
"io/ioutil"
)
func main() {
fileName := "/dir/filename"
// 讀取檔案
data, err := ioutil.ReadFile(fileName)
if err != nil {
panic(err)
}
fmt.Println(string(data))
}
上述程式碼,先讀取名字為 filename 的文件,並返回文件中的內容。這裡可以放多種檔案,例如 go 檔、csv 檔或 txt 文字檔等等。
如果想要開啟檔案後,做一些寫入的操作,可以使用 os 套件,它允許我們先開啟一個檔案,然後再執行一些對檔案的操作,如下列程式碼:
package main
import (
"fmt"
"os"
)
func main() {
// 讀取檔案,若檔案不存在,則創建它
f, err := os.OpenFile("log.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
fmt.Println(err)
}
if _, err := f.Write([]byte("appended some log\n")); err != nil {
f.Close()
fmt.Println(err)
}
if err := f.Close(); err != nil {
fmt.Println(err)
}
}
上述程式碼,我們開啟一個 csv 檔,並執行一個寫入的動作。
今天介紹 Go 語言的檔案處理,帶給大家兩個比較常使用的套件,希望對讀者們有所幫助,感謝今天的閱讀!